#ifndef _CHANNEL_HPP_
#define _CHANNEL_HPP_
#include <iostream>
#include <string>
#include <unistd.h>    
class Channel
{
public:
    Channel(int wfd, pid_t who) : _wfd(wfd), _who(who)
    {
        _name = "Channel-" + std::to_string(wfd) + "-" + std::to_string(_who);
    }
    std::string Name()
    {
        return _name;
    }
    
    void Send(int cmd)
    {
        ::write(_wfd,&cmd,sizeof(cmd));//写一个整数，在这个写之前，子进程都在阻塞中，因为管道正常并且管道为空
    }
    void Close()
    {
        ::close(_wfd);//关闭写端
    }

    pid_t Id()
    {
        return _who;
    }
    ~Channel()
    {
    }

private:
    int _wfd;//写端文件描述符
    std::string _name;
    pid_t _who;//子进程id
};

#endif
